<?php

namespace App\Trip\Payment;

use EasyWeChat\Kernel\Exceptions\InvalidArgumentException;

interface PayResultInterface
{
    /**
     * 支付实例
     *
     * @throws InvalidArgumentException
     */
    public function getApplication();

    /**
     * 小程序id
     *
     * @return string
     */
    public function getAppId(): string;

    /**
     * 商户号
     *
     * @return string
     */
    public function getMchId(): string;

    /**
     * 系统单号
     *
     * @return mixed
     */
    public function getOutTradeNo(): string;

    /**
     * 微信单号
     *
     * @return mixed
     */
    public function getTransactionId(): string;

    public function isSuccess(): bool;

    public function getTradeState();

    public function getTradeStateDesc();

    public function getSuccessAt(): string;

    /**
     * 自定义数据
     *
     * @return string
     */
    public function getAttach(): string;

    public function getTotalFee(): int;

    public function getPayAmount(): float;

}